package com.pm.buglist.service;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pm.buglist.domain.SysFiles;
import com.pm.common.core.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 系统文件表 服务类
 * </p>
 *
 * @author wwm
 * @since 2023-12-14
 */
public interface SysFilesService extends IService<SysFiles> {
    public AjaxResult FileUpload(MultipartFile file, String type, String remarks);

    /**
     * 上传文件，返回文件id
     * @param file  文件
     * @param type  文件类型
     * @return
     */
    public Long FileUploadId(MultipartFile file,String type) throws IOException;

    /**
     * 不记录上传人id上传文件，返回文件id
     * @param file  文件
     * @param type  文件类型
     * @return
     */
    public Long FileUploadIdTwo(MultipartFile file,String type) throws IOException;

    public AjaxResult FileUploadTwo(MultipartFile file,String type,Long userId,String code);

    public AjaxResult delFileById(Long id);

    public AjaxResult selectFileById(Long id);

    public AjaxResult updateSysFiles(SysFiles sysFiles);

    public List<SysFiles> selectFileList(SysFiles sysFiles);

    public void downloadFile(Long id, HttpServletResponse response);

    public List<SysFiles> BatchFileUpLoad(MultipartFile[] file,String type,String remark);

    /**
     * 通过配置项下载文件
     * @param configKey
     * @return
     */
    public void  getFileByConfig(String configKey,HttpServletResponse response);

    /**
     * 通用文件上传
     * @param file
     * @return
     */
    AjaxResult fileUploadOther(MultipartFile file);


    /**
     * 查询文件
     * @param param
     * @return
     */
    List<SysFiles> queryFileList(JSONObject param);

//    /**
//     * 下载PLM文件
//     * @param id
//     * @param response
//     */
//    void downloadPLMFile(Long id, HttpServletResponse response);
}
